/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import Oracle.OracleMethods;
import java.sql.*;

/**
 *
 * @author odmaestrams
 */
public class EdicionInformacion {
    
    public static int editarVenta(String fechaAnterior, String fechaVenta, Integer monto, Integer nroKiosco, String rifCliente, String rifClienteAnt, Integer nroKioscoAnt, Integer montoAnterior) throws SQLException {
        Connection con = OracleMethods.oracleConnection();
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT factura_PK_FK FROM ao_detalle "
                + "WHERE ao_detalle.fecha_venta_FK = TO_DATE(" + "'" + fechaAnterior + "'," + "'dd/mm/yyyy') "
                + "AND ao_detalle.rif_FK = " + "'" + rifClienteAnt + "' "
                + "AND ao_detalle.kiosco_FK = " + nroKioscoAnt);
        
        int factura_PK_FK = 0, resultado = 0;
        
        if (rs.next())
            factura_PK_FK = rs.getInt("factura_PK_FK");
        
        resultado = stmt.executeUpdate("UPDATE ao_factura SET "
                + "fecha_factura = TO_DATE(" + "'" + fechaVenta + "'," + "'dd/mm/yyyy'), "
                + "rif_FK = " + "'" + rifCliente + "', "
                + "monto = " + monto + ", "
                + "descuento = " + 0 + " "
                + "WHERE ao_factura.factura_PK = " + factura_PK_FK);
   
        
        if (resultado != 0){
            
            resultado = stmt.executeUpdate("UPDATE ao_detalle SET "
                + "fecha_venta_FK = TO_DATE(" + "'" + fechaVenta + "'," + "'dd/mm/yyyy'), "
                + "kiosco_FK = " + nroKiosco + ", "
                + "descuento = " + 0 + ", " 
                + "rif_FK = " + "'" + rifCliente + "', "
                + "monto = " + monto + " "
                + "WHERE ao_detalle.fecha_venta_FK = TO_DATE(" + "'" + fechaAnterior + "'," + "'dd/mm/yyyy') "
                + "AND ao_detalle.rif_FK = " + "'" + rifClienteAnt + "' "
                + "AND ao_detalle.kiosco_FK = " + nroKioscoAnt + " "
                + "AND ao_detalle.factura_PK_FK = " + factura_PK_FK);
            
            
            if (resultado != 0){
            resultado = stmt.executeUpdate("UPDATE ao_info_venta SET "
                + "fechaVenta_PK = TO_DATE(" + "'" + fechaVenta + "'," + "'dd/mm/yyyy'), "
                + "montoVenta = " + monto + ", "
                + "rif_PK_FK = " + "'" + rifCliente + "', "
                + "kiosco_PK_FK = " + nroKioscoAnt + " "
                + "WHERE kiosco_PK_FK = " + nroKioscoAnt + " "
                + "AND rif_PK_FK = " + rifClienteAnt + " "
                + "AND fechaVenta_PK = TO_DATE(" + "'" + fechaAnterior + "'," + "'dd/mm/yyyy')");
            }
        }
        
        stmt.close();
        con.close();
        
        return resultado;
    }
    
    public static int editarAlquiler(Integer nroAlquiler, String fechaInicio, String fechaFin, String posicion, 
            String rifCliente, int nroFormaPago, int nroServicio, Integer nroKiosco, int montoAlquiler, 
            Integer descuento, String rifClienteAnterior, Integer nroKioscoAnterior, Integer formaPagoAnt, Integer servicioAnt) throws SQLException {
        
        Connection con = OracleMethods.oracleConnection();
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT factura_PK_FK FROM ao_detalle "
                + "WHERE ao_detalle.alquiler_FK = " + nroAlquiler + " "
                + "AND ao_detalle.rif_FK = " + "'" + rifClienteAnterior + "' "
                + "AND ao_detalle.kiosco_FK = " + nroKioscoAnterior);
        
        int factura_PK_FK = 0, resultado = 0;
        
        if (rs.next())
            factura_PK_FK = rs.getInt("factura_PK_FK");
        
        resultado = stmt.executeUpdate("UPDATE ao_factura SET "
                + "fecha_factura = TO_DATE(" + "'" + fechaInicio + "'," + "'dd/mm/yyyy'), "
                + "rif_FK = " + "'" + rifCliente + "', "
                + "monto = " + montoAlquiler + ", "
                + "descuento = " + descuento + " "
                + "WHERE ao_factura.factura_PK = " + factura_PK_FK);
        
        if (resultado != 0){
            resultado = stmt.executeUpdate("UPDATE ao_pago SET "
                    + "monto = " + montoAlquiler + ", "
                    + "fecha_pago = TO_DATE(" + "'" + fechaInicio + "'," + "'dd/mm/yyyy') "
                    + "WHERE pago_PK = (SELECT pago_PK FROM ao_pago "
                    + "WHERE ao_pago.factura_PK_FK = " + factura_PK_FK + ")");
            
            
            if(resultado != 0){
                System.out.println("flag1");

                System.out.println("UPDATE ao_detalle SET "
                    + "alquiler_FK = " + nroAlquiler + ", "
                    + "kiosco_FK = " + nroKiosco + ", "
                    + "descuento = " + "'" + descuento + "'" + ", "
                    + "formaPago_FK = " + nroFormaPago + ", " 
                    + "servicio_FK = " + nroServicio + ", " 
                    + "rif_FK = " + "'" + rifCliente + "', "
                    + "monto = " + montoAlquiler + " "
                    + "WHERE ao_detalle.alquiler_FK = " + nroAlquiler + " "
                    + "AND ao_detalle.kiosco_FK = " + nroKioscoAnterior + " "
                    + "AND ao_detalle.rif_FK = " + "'" + rifClienteAnterior + "'" + " "
                    + "AND ao_detalle.formaPago_FK = " + formaPagoAnt + " "
                    + "AND ao_detalle.servicio_FK = " + servicioAnt + " "
                    + "AND ao_detalle.factura_PK_FK = " + factura_PK_FK);
                
                resultado = stmt.executeUpdate("UPDATE ao_detalle SET "
                    + "alquiler_FK = " + nroAlquiler + ", "
                    + "kiosco_FK = " + nroKiosco + ", "
                    + "descuento = " + "'" + descuento + "'" + ", "
                    + "formaPago_FK = " + nroFormaPago + ", " 
                    + "servicio_FK = " + nroServicio + ", " 
                    + "rif_FK = " + "'" + rifCliente + "', "
                    + "monto = " + montoAlquiler + " "
                    + "WHERE ao_detalle.alquiler_FK = " + nroAlquiler + " "
                    + "AND ao_detalle.kiosco_FK = " + nroKioscoAnterior + " "
                    + "AND ao_detalle.rif_FK = " + "'" + rifClienteAnterior + "'" + " "
                    + "AND ao_detalle.formaPago_FK = " + formaPagoAnt + " "
                    + "AND ao_detalle.servicio_FK = " + servicioAnt + " "
                    + "AND ao_detalle.factura_PK_FK = " + factura_PK_FK);
               
                
                if (resultado != 0){
                    System.out.println("flag2");
                    resultado = stmt.executeUpdate("UPDATE ao_alquiler SET "
                        + "kiosco_PK_FK = " + nroKiosco + ", "
                        + "rif_PK_FK = " + "'" + rifCliente + "', "
                        + "formaPago_PK_FK = " + nroFormaPago + ", "
                        + "servicio_PK_FK = " + nroServicio + ", "
                        + "fechaInicio = TO_DATE(" + "'" + fechaInicio + "'," + "'dd/mm/yyyy'), "
                        + "fechaFin = TO_DATE(" + "'" + fechaFin + "'," + "'dd/mm/yyyy'), "
                        + "posicion = " + "'" + posicion + "' "
                        + "WHERE alquiler_PK = " + nroAlquiler);
                }
            }
        }
        
        stmt.close();
        rs.close();
        con.close();
        
        return resultado;
    }
    
    public static int editarMantenimiento(Integer nroMant, String fechaMant, Integer nroKiosco, String ciEmpleado, 
            Integer montoMant, Integer horasT, String tipoMant, Integer nroMantAnterior, Integer nroKioscoAnterior, 
            String ciEmpleadoAnterior, Integer horasTAnterior, String fechaMantAnterior, String tipoMantAnterior, Integer montoMantAnterior) throws SQLException{
        
        Connection con = OracleMethods.oracleConnection();
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT factura_PK_FK FROM ao_detalle "
                + "WHERE fecha_mant_FK = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy') "
                + "AND kiosco_FK = " + nroKioscoAnterior + " "
                + "AND ci_FK = " + "'" + ciEmpleadoAnterior + "' "
                + "AND mant_FK = " + nroMantAnterior);
        
        int factura_PK_FK = 0, resultado = 0;
        
        if (rs.next())
            factura_PK_FK = rs.getInt("factura_PK_FK");
        
        resultado = stmt.executeUpdate("UPDATE ao_gasto SET "
                + "fecha = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy'), "
                + "tipo =  " + "'Reparacion', "
                + "monto = " + montoMant + ", "
                + "kiosco_PK_FK = " + nroKiosco + " "
                + "WHERE kiosco_PK_FK = " + nroKioscoAnterior + " "
                + "AND fecha = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy') "
                + "AND tipo = 'Reparacion' "
                + "AND monto = " + montoMantAnterior);
 
        resultado = stmt.executeUpdate("UPDATE ao_factura SET "
                + "fecha_factura = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy'), "
                + "rif_FK = " + "'" + nroKiosco + "', "
                + "monto = " + montoMant + ", "
                + "descuento = " + 0 + " "
                + "WHERE factura_PK = " + factura_PK_FK);

        
        System.out.println("UPDATE ao_pago SET "
                    + "monto = " + montoMant + ", "
                    + "fecha_pago = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy') "
                    + "WHERE pago_PK = (SELECT pago_PK FROM ao_pago "
                    + "WHERE factura_PK_FK = " + factura_PK_FK + " "
                    + "AND monto = " + montoMantAnterior + " "
                    + "AND fecha_pago = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy'))");
        
        
        
        if (resultado != 0){
            resultado = stmt.executeUpdate("UPDATE ao_pago SET "
                    + "monto = " + montoMant + ", "
                    + "fecha_pago = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy') "
                    + "WHERE pago_PK = (SELECT pago_PK FROM ao_pago "
                    + "WHERE factura_PK_FK = " + factura_PK_FK + " "
                    + "AND monto = " + montoMantAnterior + " "
                    + "AND fecha_pago = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy'))");
            
      
            if(resultado != 0){
                System.out.println("flag1");

                System.out.println("UPDATE ao_detalle SET "
                    + "kiosco_FK = " + nroKiosco + ", "
                    + "descuento = " + "'" + 0 + "'" + ", "
                    + "mant_FK = " + nroMant + ", " 
                    + "fecha_mant_FK = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy'), " 
                    + "ci_FK = " + "'" + ciEmpleado + "', "
                    + "monto = " + montoMant + " "
                    + "WHERE ao_detalle.fecha_mant_FK = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy') "
                    + "AND ao_detalle.kiosco_FK = " + nroKioscoAnterior + " "
                    + "AND ao_detalle.ci_FK = " + "'" + ciEmpleadoAnterior + "'" + " "
                    + "AND ao_detalle.mant_FK = " + nroMantAnterior + " "
                    + "AND ao_detalle.factura_PK_FK = " + factura_PK_FK);
                
                resultado = stmt.executeUpdate("UPDATE ao_detalle SET "
                    + "kiosco_FK = " + nroKiosco + ", "
                    + "descuento = " + "'" + 0 + "'" + ", "
                    + "mant_FK = " + "'" + nroMant + "', " 
                    + "fecha_mant_FK = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy'), " 
                    + "ci_FK = " + "'" + ciEmpleado + "', "
                    + "monto = " + montoMant + " "
                    + "WHERE ao_detalle.fecha_mant_FK = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy') "
                    + "AND ao_detalle.kiosco_FK = " + nroKioscoAnterior + " "
                    + "AND ao_detalle.ci_FK = " + "'" + ciEmpleadoAnterior + "'" + " "
                    + "AND ao_detalle.mant_FK = " + nroMantAnterior + " "
                    + "AND ao_detalle.factura_PK_FK = " + factura_PK_FK);
               
                
                if (resultado != 0){
                    System.out.println("flag2");
                    resultado = stmt.executeUpdate("UPDATE ao_mant_kiosco SET "
                        + "kiosco_PK_FK = " + nroKiosco + ", "
                        + "ci_PK_FK = " + "'" + ciEmpleado + "', "
                        + "fecha_PK = TO_DATE(" + "'" + fechaMant + "'," + "'dd/mm/yyyy'), "
                        + "mant_PK_FK = " + "'" + nroMant + "' "
                        + "WHERE fecha_PK = TO_DATE(" + "'" + fechaMantAnterior + "'," + "'dd/mm/yyyy') "
                        + "AND kiosco_PK_FK = " + nroKioscoAnterior + " "
                        + "AND ci_PK_FK = " + "'" + ciEmpleadoAnterior + "' "
                        + "AND mant_PK_FK = " + tipoMantAnterior);
                }
            }
        }
        
        stmt.close();
        rs.close();
        con.close();
        
        return resultado;
    }
 
}
